package utils;



import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Description:字符串和日期转换工具类
 * @Author one world
 * @Date 2020/9/13 0013 13:18
 */
public class DateUtil {
    private static final Logger logger = LoggerFactory.getLogger(DateUtil.class);

    /**
     * 将时间字符串转换为Date类型 为yyyy-MM-dd格式
     * @param dateStr
     * @return Date
     */
    public static Date toDate(String dateStr) {
        Date date = null;
        SimpleDateFormat formater = new SimpleDateFormat();
        formater.applyPattern("yyyy-MM-dd");
        try {
            date = formater.parse(dateStr);
        } catch (ParseException e) {
           logger.error("日期工具类DateUtil的toDate方法转换异常",e);
        }
        return date;
    }

    /**
     * 按照提供的格式将字符串转换成Date类型 根据你传入的日期字符串和格式化后的格式返回日期
     * @param dateStr   日期字符串
     * @param formaterString  格式字符串
     * @return
     */
    public static Date toDate(String dateStr, String formaterString) {
        Date date = null;
        SimpleDateFormat formater = new SimpleDateFormat();
        formater.applyPattern(formaterString);
        try {
            date = formater.parse(dateStr);
        } catch (ParseException e) {
            logger.error("日期工具类DateUtil的toDate方法转换异常",e);
        }
        return date;
    }

    /**
     * 将Date类型时间转换为字符串
     * @param date   日期
     * @return  String
     */
    public static String toString(Date date) {

        String time;
        SimpleDateFormat formater = new SimpleDateFormat();
        formater.applyPattern("yyyy-MM-dd");
        time = formater.format(date);
        return time;
    }

    /**
     * 按照参数提供的格式将Date类型时间转换为字符串
     * @param date
     * @param formaterString
     * @return  String
     */
    public static String toString(Date date, String formaterString) {
        String time;
        SimpleDateFormat formater = new SimpleDateFormat();
        formater.applyPattern(formaterString);
        time = formater.format(date);
        return time;
    }

    /**
     * 将日期转化为yyyy-MM-dd HH:mm:ss格式
     * @param date
     * @return
     */
    public static Date toDate(Date date){
        SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       String time = formater.format(date);
        toDate(time,"yyyy-MM-dd HH:mm:ss");
       return date;
    }
}
